package study.map遍历;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @Author 刘伟涛
 * @Date 2024/6/14 15:36
 **/
public class Map遍历 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Alice", 30);
        map.put("Bob", 25);
        map.put("Charlie", 35);

    }

    public static void entrySet(Map<String, Integer> map) {

        // 使用 entrySet() 方法遍历
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }

    public static void keySet(Map<String, Integer> map) {

        // 使用 keySet() 方法遍历
        for (String key : map.keySet()) {
            System.out.println("Key: " + key + ", Value: " + map.get(key));
        }
    }

    public static void values(Map<String, Integer> map) {
// 使用 values() 方法遍历
        for (Integer value : map.values()) {
            System.out.println("Value: " + value);
        }
    }

    public static void forEach(Map<String, Integer> map) {
// 使用 forEach() 方法遍历
        map.forEach((key, value) -> {
            System.out.println("Key: " + key + ", Value: " + value);
        });
    }

    public static void iterator(Map<String, Integer> map) {
// 使用 Iterator 迭代器遍历
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }

    public static void streamAPI(Map<String, Integer> map) {
        map.entrySet()
                .stream()
                .filter(entry -> entry.getValue() > 30)  // 过滤值大于30的条目
                .forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()));
    }
}
